package unipi.database;

import java.util.ArrayList;
import java.util.List;

public class Notifications
{
	private static int getTaskCount(String uid, String type)
	{
		List<List<String>> taskList;
		
		if(type.equals("late")) taskList = Tasks.getComingDue(uid);
		else if(type.equals("overdue")) taskList = Tasks.getOverDue(uid);
		else if(type.equals("shouldstarted")) taskList = Tasks.getShouldHaveStarted(uid);
		else taskList = Tasks.getPending(uid);
		
		if(taskList == null) return -1;
		
		return taskList.size() - 1; // -1 because of the titles
	}
	
	private static int getUserRequestCount(String uid)
	{
		List<List<String>> userList = User.getUserRequestData(uid);
		
		if(userList == null) return -1;
		
		return userList.size();		
	}
	
	public static List<String> getNotifications(String uid)
	{	
		List<String> L = new ArrayList<String>();
		
		int pending = getTaskCount(uid, "pending");
		
		if(pending == 0)
			L.add("Δεν έχετε εργασίες.");
		else
		{
			L.add("<a class=\"sideLink\" href=\"ViewTasks\">Έχετε συνολικά (" + pending + ") εργασίες.</a>");
			
			int late = getTaskCount(uid, "late");
			if(late != 0)
				L.add("<a class=\"sideLink\" href=\"ViewTasks?view=comingdue\">Έχετε (" + late + ") επίγουσες εργασίες.</a>");
			
			int overdue = getTaskCount(uid, "overdue");
			if(overdue != 0)		
				L.add("<a class=\"sideLink\" href=\"ViewTasks?view=overdue\">Έχετε (" + overdue + ") αργοπορημένες εργασίες.</a>");
			
			int shouldstarted = getTaskCount(uid, "shouldstarted");
			if(shouldstarted != 0)
				L.add("<a class=\"sideLink\" href=\"ViewTasks?view=shouldstarted\">Έχετε (" + shouldstarted + ") εργασίες που θα " +
					  "έπρεπε να έχετε ξεκινήσει.</a>");
		}
		
		int userRequests = getUserRequestCount(uid);
		if(userRequests != 0)
			L.add("<a class=\"sideLink\" href=\"ManageRequests\">Έχετε (" + userRequests + ") αιτήσεις χρηστών.</a>");		
		
		return L;
	}
	
	
}
